package org.xtext.mydsl.validation

import org.eclipse.xtext.validation.Check
import org.xtext.mydsl.scheduler.Block
import org.xtext.mydsl.scheduler.Break
import org.xtext.mydsl.scheduler.Charla
import org.xtext.mydsl.scheduler.MesaDebate
import org.xtext.mydsl.scheduler.Refrigerio
import org.xtext.mydsl.scheduler.SchedulerPackage
import utils.DuracionExtensionMethods

class ValidacionesDuracion extends MyAbstractValidator  {
	
	  extension DuracionExtensionMethods = new DuracionExtensionMethods
				
	@Check
	def duracionMaximaBloqueDosHoras(Block it){
		if (actividades.map[it.informacion.duracion].sum > 120)
			error("Los bloques no pueden durar mas de dos horas",
					SchedulerPackage.Literals.BLOCK__ACTIVIDADES)
	}	

	@Check
	def duracionMinimaCharla30Minutos(Charla it){
		if (excedeDuracion(30))
			"El tiempo minimo de una charla es de 30 minutos".levantarErrorDeDuracion
	}
	
	@Check
	def duracionMinimaMesaDebate1Hora(MesaDebate it){
		if (excedeDuracion(60))
			"El tiempo minimo de una mesa de debate es de 60 minutos.".levantarErrorDeDuracion
	}
	
	@Check
	def duracionMinimaBreak15Minutos(Break it){
		duracionMinimaActividad(15)
	}
	
	@Check
	def duracionMinimaRefrigerio45Minutos(Refrigerio it){
		duracionMinimaActividad(45)
	}
	

}